package queue;


import org.junit.jupiter.api.Test;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.PriorityBlockingQueue;

/**
 * ArrayBlockingQueue：由数组结构组成的有界阻塞队列。
 * LinkedBlockingQueue：由链表结构组成的有界阻塞队列。
 * PriorityBlockingQueue：支持优先级排序的无界阻塞队列。不保证同优先级元素的顺序
 * DelayQueue：使用优先级队列实现的无界阻塞队列。
 * SynchronousQueue：不存储元素的阻塞队列。
 * LinkedTransferQueue：由链表结构组成的无界阻塞队列。
 * LinkedBlockingDeque：由链表结构组成的双向阻塞队列。
 */
public class BlockQueueTest {
    @Test
    public void testArrayBlockingQueue() {
        ArrayBlockingQueue unfairQueue = new ArrayBlockingQueue(1000);
        ArrayBlockingQueue fairQueue = new ArrayBlockingQueue(1000, true);
    }

    @Test
    public void testLinkedBlockingQueue() {

    }

    @Test
    public void testPriorityBlockingQueue() {
        PriorityBlockingQueue priorityBlockingQueue = new PriorityBlockingQueue(1000);
    }

    @Test
    public void testDelayQueue() {

    }

    @Test
    public void testSynchronousQueue() {

    }

    @Test
    public void testLinkedTransferQueue() {

    }

    @Test
    public void testLinkedBlockingDeque() {

    }
}
